Jmangler-A Framework for Load-Time Transformation of Java Class Files
نویسندگان
چکیده
Current proposals for load-time transformation of Java classes are either dependent on the use of a specific class loader or dependent on a specific JVM implementation. This is not due to an inadequacy of the Java platform but to the wrong choice of the level at which to hook into the Java Class Loader Architecture. JMangler follows a novel approach that ensures both class loader and JVM independence by hooking into the base class of all class loaders. Furthermore, existing proposals do not allow transformers to be treated as components because implicit dependencies must be resolved manually. This paper shows that automatic composition is possible for the well-defined class of interface transformations that still include powerful transformations, like addition of fields, methods and classes, and changes to the class hierarchy. Consequently interface transformers can be deployed jointly even if developed independently.
منابع مشابه
JMangler – A Powerful Back-End for Aspect-Oriented Programming
AOSD improves separation of concerns in software development by enabling the modular expression of crosscutting aspects. However, modular implementation of an aspect requires techniques for “weaving” the aspect into the code of all classes that require it. Often, weaving is complicated by the unavailability or dynamic creation of source code. We present JMangler, a freely available framework fo...
متن کاملIndependent Extensibility for Aspect-Oriented Systems
So far, there is no satisfactory means to safely combine aspects that have been developed independently. In the general case, the process of jointly applying different aspects is not guaranteed to produce complete and unambiguous results. This paper shows that in the relevant case of pure interface modifications, completeness, uniqueness and independent extensibility can be ensured. This result...
متن کاملJava Birthmarks - Detecting the Software Theft -
To detect the theft of Java class files efficiently, we propose a concept of Java birthmarks, which are unique and native characteristics of every class file. For a pair of class files p and q, if q has the same birthmark as p’s, q is suspected as a copy of p. Ideally, the birthmarks should satisfy the following properties: (a) preservation – the birthmarks should be preserved even if the origi...
متن کاملCar: The Class Archive Format
A Java application is built of a large number of Java class files, which are collected and compressed in Java archive (jar) files. But the jar files typically shrink original class files by only fifty percent. Various projects have pursued ever smaller class files and they achieved very impressive results, but these results come at the cost of complicated and slow transformations. The class arc...
متن کاملSTOOP: The Sable Toolkit for Object-Oriented Profiling
− instrumented Java class files produced from existing programs using Soot (www.sable.mcgill.ca/soot), a framework for analyzing and transforming Java bytecode. The transformed classes report their own field accesses as well as method entries and exits. Profiling agents provide raw data to the rest of the STOOP framework. Data may originate from a wide variety of sources. For example, traces of...
متن کامل